Date		:	26 septembre, 25 octobre 1993 
		Protection	:	DISQUETTE CLEF + MOT DE PASSE
		Programme	:       X-ROCK
		Outils		:	SOFT-ICE V2.50
		Fichier		:	? et TITLC.EXE
		Temps pass�	:	5 minutes
		Soci�t�		:	SOFT WORLD
		Divers	        :	Crypt�
		Origine		:	JKT
		Num�ro		:	228


	Un jeu qui comporte deux protections: Disquette clef et mot de passe.
        Ci-dessous comment enlever la protection disquette clef.
	En me triggant sur l'INT13 il faut comme d'habitude faire du F11
	jusqu'� ce que l'on allume le lecteur de disquette. Toutes les
	autres r�jurgences de l'INT13 concernent le disque dur. C'est la
	m�me INT qui fait les deux. Il faut le savoir sinon on risque de
	perdre son temps � d�bugger son propre disque dur.
	Apr�s la seconde INT13 de la disquette le contenu de AX est compar�
	� 6DF7. Si oui c'est OK sinon on affiche le m�chant message.

	CS:IP CD13	  INT 13
	  :
	  :                       <������ͻ
	  :                               �
	CS:01EF 81FEFF02  CMP     SI,02FF � ; Boucle et incr. SI
	CS:01F3 75F5	  JZ      >������ͼ
	CS:01F5 3DF76D	  CMP	  AX,6DF7   ; Ici le test fatidique...
	CS:01F8 7507      JZ      Suite si OK. � NOPer ou � forcer.

	Le bl�me c'est que je pensais avoir un autre probl�me ailleurs car il
	( le soft ) n'arr�tait pas de beeper toutes les secondes. Je pensais que
	c'�tait d� en partie � SOFT-ICE mais je n'en �tais pas s�r. C'est la que
	je d�cidais de faire la modif et de lancer le jeu sans SOFT-ICE.

	Mais aucune trace de la routine INT 13 avec la comparaison du contenu
	de AX avec 6DF7. Je v�rifie tous mes EXE, seul deux fichiers MUSIC et
	MUSIC1 sont LZEXEt�s. MUSIC se d�comprime mais pas MUSIC1. Je regarde
	par hazard la fin du fichier et je trouve la phrase: THIS PROGRAM WAS
	WRITTEN BY .... IN SOFIA.  Notre cher Darki ! le voila de retour.
	Une fois d�contamin� par CLEAN je v�rifie l'�tat de mon dur, mais
	aucune infection ne semble s'y �tre propag�e. J'UNLZEXEtte le fichier
	et remarque que sa taille est semblable au fichier MUSIC. Donc je
	pense que ce n'�tait qu'une copie du premier que quelqu'un a infect�.
	Ce qui explique que le jeu ne l'a pas utilis� et la non-infection de
	mon hard.
	Donc aucune trace de ma chaine alors que tous les fichiers sont
	maintenant en clair. 
	Certainement que la chaine est crypt�e. Dans ce cas il faut mettre
	SOFT-ICE en point d'arr�t en �criture sur le mot/octet cherch� et
	trouver la routine qui crypte. Cel� peut-�tre tr�s long car plusieurs
	routines peuvent se superposer, je ne te cause pas alors de la
	modification �ventuelle des dits octets car bien souvent le caract�re
	n est XOR� par le caract�re n-1 ou n+1. Bonjour la bidouille.
	En examinant le fichier VXROCK.EXE de 3k qui lance le jeu, je remarque
	sa densit� de compactage avec aucune phrase et/ou mot en clair. Ce
	fichier est scrambled c'est sur. Et pourquoi serait-il scrambled ?
	Pour cacher quelque chose mon enfant r�pondit M�re Grand � ...
	Non. Ca	c'est une autre histoire.
	Je tape LDR VXROCK.EXE et je regarde.
	D�s le d�but des PUSH AX, PUSH BX et RETF apparaissent. C'est du
	classique pour faire perdre les p�dales � SOURCER. Je d�cide de faire
	du F10 boucle apr�s boucle pour arriver au code sain.
	Au bout d'un moment je tombe sur une boucle qui charge un octet
	point� par SI dans AH, le XOR avec 24, puis le renvoie par DI.
	A la fin de la boucle on a de nouveau un PUSH, PUSH et RETF. Et la
	on y est. C'est le bon code. Et que trouves-je ? Mon INT13 suivi du
	test de AX !
	OK. Je fais un lanceur car je ne vais pas m'arracher les cheveux et
	faire du reverse engeenering pour inverser le cryptage. J'ai d�j� donn�
	� ce jeu l�.
	Et le lanceur ne d�marre pas du premier coup car j'ai essay� de le
	trigger sur l'INT 1C. Poisse. Il n'y a pas d'INT soft appell�e dans
	ces 3k de programme en dehors de l'INT 13. Aller ! j'essaye sur
	l'INT 13. Et c'est OK.
	Le jeu fonctionne sans BEEPer. Il ne reste que la protection mot de
	passe � faire sauter. Mais ca je pense que c'est peu de chose.
	Au fait pour quitter c'est la touche F1.

	Ci-dessous les codes de couleur traduit de l'INDONESIEN en Frenchie.

	1 = BLANC, 2 = ROUGE, 3 = BLEU, 4 = VIOLET, 5 = VERT.
	
	Si on tape le mauvais code le jeu semble fonctionner mais il se
	plantera tot ou tard avec plein d'injures sur l'�cran.

	Ci-dessous les valeurs pour le lanceur:

;       PATCH POUR LE PROGRAMME XROCK
;
;******************************************************************************
;                             ZONE A INITIALISER

adr_ip1         equ     01f8h  ; Adresse dont le contenu est � modifier.

anc_val         equ     0775h  ; Valeur d'origine � rechercher, invers�e.
				
nouv_val        equ     9090h   ; Nouvelle valeur (la modif).

INT_DET         equ     13h     ; Le num�ro de l'INT que l'on veut utiliser.

;******************************************************************************

	25/10/1993

	O� je d�cide de jeter un oeil sur la protection mot de passe.
	Le programme semblait �tre g�n� par la pr�sence de SOFT-ICE, et en
	fait tout s'explique maintenant puisque je remarque l'utilisation des
	INT 1 et 2 ! Le r�sultat est un jeu ralenti au maximum entrecoup� par
	des beep-beep incessant.
	La v�rification du code est simple et se fait en CS:119A.	 

	CS=1C66
	CS:1193 A1F213		MOV	AX,[13F2]
	CS:1196 3B06F813	CMP	AX,[13F8]
	CS:119A 7526		JNZ	11C2	; ON SAUTE APRES SI PAS OK.
	CS:119C BF00A0          MOV	DI,A000

	En pratique il suffit de remplacer le JNZ par des NOP ou de sauter
	avec un offset �gal � zero: JMP 119C c.a.d. EB00. C'est cette dreni�re
	solution que j'ai adopt�e.
	Avec PCTOOLS chercher dans le fichier TITLC.EXE la chaine:
	3B06F8137526 et remplacer 7526 par EB00.

	Cette chaine est en clair contrairement � la protection disquette.
	Mais j'ai l'impression que j'ai persu le son dans l'histoire.
	A v�rifier...

	FREDDY